Skip to main content
This forum is closed to new posts and responses. Individual names altered for privacy purposes. The information contained in this website is provided for informational purposes only and should not be construed as a forum for customer support requests. Any customer support requests should be directed to the official HCL customer support channels below:

HCL Software Customer Support Portal for U.S. Federal Government clients
HCL Software Customer Support Portal

Notes/Domino 6 and 7 Forum

Notes/Domino 6 and 7 Forum


  

PreviousPrevious NextNext


~Lorraine Chutumipulflar 12.Feb.03 07:08 PM a Web browser
Notes Client All Releases Windows 2000


[Note: This is an internal report created by my company, The Niobrara Group, and posted here to share our findings. References to "Randy" in this report refer to a co-worker of mine who is involved in this project as well.]

These are my findings to date on using a Java Applet in the Notes client to act as a "grid editor" component. The key design goals are to have a re-usable component that can be embedded in a Notes form, providing users a dynamic table (or grid) for entering multiple line-items of data on a single document, where the total number of line-items (rows) can't be pre-determined by the form designer.

In persuing a Java Applet solution to this design goal, I've been met with a number of technical hurdles. This document defines those hurdles and hopefully may serve to stimulate discussion on ways to solve these issues.

1. SWING Applet:
- Screenshot of HelloSWING applet
The Java Foundation Classes (JFC), also known as SWING, provide a class called JTable that could be used as a basis for our grid editor applet. JTable is a feature-rich class with many built-in capabilities that would be desirable for our use. So I created a SWING applet (JApplet) containing a simple JTable as a proof of concept. I imorted my compiled applet, "HelloSwing," into a Notes test database using Notes R6. Being a new release, R6 supports all the Java2 class libraries, including SWING/JFC. In testing, the applet worked marvelously, with one minor problem -- it was hard to see the cursor when editing a table cell. When testing the same applet in a web browser, the cursor is visible as expected. This is ISSUE#1: Cursor Visibility.

Notes 5, however, provides built-in support for Java 1.1.8 (not Java2), and therefore doesn't have the class libraries necessary to support SWING applets (since swing is part of Java2.) But there is a work-around! The SWING library (swingall.jar or swing.jar) could be installed on the client workstations and referenced in a special Notes environment variable called JavaUserClasses=. In this fashion, we can add the swing library to be in the CLASSPATH for the Notes 5 client. Additionally, the applet had to be re-compiled using only Java 1.1.8 for compatibility reasons. Randy and I felt that this would be an acceptable work-around, as we have code that could install the swingall.jar file automatically for the appropriate users. So I proceded down this route and re-built the applet using the older JDK and referencing swingall.jar in the Notes.ini for my R5 client.

In testing the new "HelloSwing" applet in R5, Randy and I discovered a number of issues:
We still had the cursor problem (ISSUE#1 above)
In fact, we weren't able to edit the grid cells at all, but this issue was later solved by using swingall.jar instead of swing.jar in the JavaUserClasses=.
When putting the focus on the component and then closing the notes form, Notes would lock up. This is ISSUE#2: Notes5 Lock-up.
To better simulate real-world testing, we embedded our applet inside a Notes tabbed table. At times, especially when opening a saved doc in read-mode or opening "directly-to-edit" from the view, the applet was not rendered in the correct position. Typically it was floating "above" the tabbed table and slightly below. This is ISSUE#3: Notes5 Placement Problem.

Summary of SWING Applet prototype: Works acceptably well in Notes 6 (and looks terrific!), but is unacceptable in Notes 5 due to crashing and rendering issues.

2. AWT Applet:
- Screenshot of HelloAWT applet
My next approach was to use only Java 1.1.8 in building my applet. This means no SWING components, no JTable, and a decent amount of re-inventing the wheel. Before Java2 and JFC/SWING, the GUI design was limited to using AWT, or the Abstract Windowing Toolkit. AWT provides the basic components such as text fields, buttons, etc., but has no "Table" or "Grid" component. So my approach was to create a simple AWT applet showing a number of text fields in a grid arrangement.

I created an AWT applet called "HelloAWT" and tested in a Notes 5 database. In a positive note, there is no need to install extra java libraries on the client workstations or modify the Notes.INI to get this applet to work.

Testing Results:
Works fine in Notes 6.
ISSUE#2: Notes5 Lock-up still happens on occasion.
ISSUE#3: Notes5 Placment Problem still occurs on occasion.

Summary of AWT Applet prototype: Has essentially the same problems as HelloSWING. Doesn't require a special install, but is also harder to develop and will have less features than a SWING-based solution.

3. Table of Results:
HelloSWING in R6: Issue #1.
HelloSWING in R5: Issues #1, #2, #3 + Extra Install
HelloAWT in R6: No Issues, but Less Features (than SWING)
HelloAWT in R5: Issues #2,#3 + Less Features

Issue#1 is a minor issue and may be mitigated with some extra programming.
Issues#2,3 are SEVERE, and are most-likely deal-breakers.

As you can see, there aren't any severe drawbacks to using a Java Applet solution in R6, but there are very limiting problems when using R5. (Also remember that this is when the applet is used in the Notes Client, not in a web-based Domino application.)






Using Java AWT and SWING applets in... (~Lorraine Chutu... 12.Feb.03)
. . RE: Using Java AWT and SWING applet... (~Mark Bubnizen 7.Mar.03)
. . . . RE: Using Java AWT and SWING applet... (~Lorraine Chutu... 24.Mar.03)
. . RE: Using Java AWT and SWING applet... (~Justin Asaboos... 14.Mar.03)
. . . . Thanks -- good info. (~Lorraine Chutu... 24.Mar.03)





  Document options
Print this pagePrint this page

 Search this forum

  Forum views and search
Date (threaded)
Date (flat)
With excerpt
Category
Platform
Release
Advanced search

 RSS feedsRSS
All forum posts RSS
All main topics RSS